<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>/package/conditions element</title>
<title>CMSIS-Pack: /package/conditions element</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="printComponentTabs.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="stylsheetf" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 46px;">
  <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">CMSIS-Pack
   &#160;<span id="projectnumber">Version 1.4.1</span>
   </div>
   <div id="projectbrief">Delivery Mechanism for Software Packs</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<div id="CMSISnav" class="tabs1">
    <ul class="tablist">
      <script type="text/javascript">
		<!--
		writeComponentTabs.call(this);
		//-->
      </script>
	  </ul>
</div>
<!-- Generated by Doxygen 1.8.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('pdsc_conditions_pg.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">/package/conditions element </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The grouping element <a class="el" href="pdsc_conditions_pg.html#element_conditions">/package/conditions</a> contains all conditions defined for the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</p>
<p>A condition describes dependencies on device, processor, and tool attributes as well as the presence of other components. The <b>conditions</b> are used to define AND and OR rules used to make components conditional and therefore only available under certain circumstances, e.g. for specific devices or processors. The conditions are also used to express dependencies between components.</p>
<p>Each condition has an <b>id</b> that is unique within the scope of a the description. An <b>id</b> can be referenced in the condition attribute of components, apis, examples, files and other conditions to become conditional. If a condition resolves to false during the processing of the description, the respective element will be ignored.</p>
<p><b>Example:</b> </p>
<div class="fragment"><div class="line">&lt;conditions&gt;</div>
<div class="line">  &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;CM4&quot;</span>&gt;                           &lt;!-- defines the condition with the ID <span class="stringliteral">&quot;CM4&quot;</span> --&gt;</div>
<div class="line">    &lt;description&gt;True <span class="keywordflow">if</span> the active device has a Cortex-M4 processor&lt;/description&gt;</div>
<div class="line">    &lt;require Dcore=<span class="stringliteral">&quot;Cortex-M4&quot;</span>/&gt;                 &lt;!-- device has a Cortex-M4 processor --&gt;</div>
<div class="line">  &lt;/condition&gt;</div>
<div class="line"></div>
<div class="line">  &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;Cortex-M&quot;</span>&gt;                      &lt;!-- defines the condition with the ID <span class="stringliteral">&quot;Cortex-M&quot;</span> --&gt;</div>
<div class="line">    &lt;description&gt;True <span class="keywordflow">if</span> the active device has a Cortex-M0 or Cortex-M0+ or Cortex-M3 or Cortex-M4 or SC000 or SC3000 processor &lt;/description&gt;</div>
<div class="line">    &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M0&quot;</span>/&gt;                  &lt;!-- any of the following cores will make the condition resolve to <span class="keyword">true</span> --&gt;</div>
<div class="line">    &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M0+&quot;</span>/&gt;</div>
<div class="line">    &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M3&quot;</span>/&gt;</div>
<div class="line">    &lt;accept Dcore=<span class="stringliteral">&quot;Cortex-M4&quot;</span>/&gt;</div>
<div class="line">    &lt;accept Dcore=<span class="stringliteral">&quot;SC000&quot;</span>/&gt;</div>
<div class="line">    &lt;accept Dcore=<span class="stringliteral">&quot;SC300&quot;</span>/&gt;</div>
<div class="line">  &lt;/condition&gt;</div>
<div class="line"></div>
<div class="line">  &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;CMSIS-CORE&quot;</span>&gt;                     &lt;!-- defines the condition with the ID <span class="stringliteral">&quot;CMSIS-CORE&quot;</span> --&gt;</div>
<div class="line">    &lt;description&gt;True <span class="keywordflow">if</span> the component Device Startup is selected and the device has a Cortex-M processor&lt;/description&gt;</div>
<div class="line">    &lt;require Cclass=<span class="stringliteral">&quot;Device&quot;</span> Cgroup=<span class="stringliteral">&quot;Startup&quot;</span>/&gt;   &lt;!-- needs a software component Device Startup AND ... --&gt;</div>
<div class="line">    &lt;require condition=<span class="stringliteral">&quot;Cortex-M&quot;</span>/&gt;               &lt;!-- ... needs that condition with ID=Cortex-M to be <span class="keyword">true</span>. --&gt;</div>
<div class="line">  &lt;/condition&gt;</div>
<div class="line"></div>
<div class="line">  &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;CMSIS-DSP&quot;</span>&gt;                      &lt;!-- defines the condition with the ID <span class="stringliteral">&quot;CMSIS-DSP&quot;</span> --&gt;</div>
<div class="line">    &lt;description&gt;True <span class="keywordflow">if</span> CMSIS-CORE == TRUE and either GCC or ARMCC and device running in little-endian byte ordering&lt;/description&gt;</div>
<div class="line">    &lt;require condition=<span class="stringliteral">&quot;CMSIS-CORE&quot;</span>/&gt;             &lt;!-- needs a software component Device Startup AND ... --&gt;</div>
<div class="line">    &lt;accept Tcompiler=<span class="stringliteral">&quot;GCC&quot;</span>/&gt;                     &lt;!-- ... works either with the GCC compiler OR ... --&gt;</div>
<div class="line">    &lt;accept Tcompiler=<span class="stringliteral">&quot;ARMCC&quot;</span>/&gt;                   &lt;!-- ... the ARMCC compiler AND ... --&gt;</div>
<div class="line">    &lt;require Dendian=<span class="stringliteral">&quot;Little-endian&quot;</span>/&gt;            &lt;!-- ... requires a device running in little-endian byte ordering --&gt;</div>
<div class="line">  &lt;/condition&gt;</div>
<div class="line"></div>
<div class="line">  &lt;condition <span class="keywordtype">id</span>=<span class="stringliteral">&quot;No STM32&quot;</span>&gt;                       &lt;!-- defines the condition with ID <span class="stringliteral">&quot;No STM32&quot;</span> --&gt;</div>
<div class="line">    &lt;description&gt;False <span class="keywordflow">if</span> the device is from ST and the device name starts with <span class="stringliteral">&quot;STM32&quot;</span>&lt;/description&gt;</div>
<div class="line">    &lt;deny Dvendor=<span class="stringliteral">&quot;STMicroelectronics:13&quot;</span> Dname=<span class="stringliteral">&quot;STM32*&quot;</span>/&gt;  &lt;!-- device name must not start with STM32 and be from vendor ST--&gt;</div>
<div class="line">  &lt;/condition&gt;</div>
<div class="line">&lt;/conditions&gt;</div>
</div><!-- fragment --><p>&#160;</p>
<hr/>
<h1><a class="anchor" id="element_conditions"></a>
/package/conditions</h1>
<p>This element groups all conditions used in the <a class="el" href="_c_p__s_w_components.html">Software Pack</a>.</p>
<table  class="cmtable" summary="Element: Conditions">
<tr>
<th>Parent </th><th colspan="3">Chain  </th></tr>
<tr>
<td><a class="el" href="pdsc_package_pg.html">package</a> </td><td colspan="3"><a class="el" href="pdsc_package_pg.html">/package</a>  </td></tr>
<tr>
<th>Child Elements </th><th>Description </th><th>Type </th><th>Occurrence  </th></tr>
<tr>
<td><a class="el" href="pdsc_conditions_pg.html#element_condition">condition</a> </td><td>Define the individual dependency condition. </td><td>xs:string </td><td>1..*  </td></tr>
</table>
<p>&#160;</p>
<hr/>
<h1><a class="anchor" id="element_condition"></a>
/package/conditions/condition</h1>
<p>Conditions are dependency rules that can apply to elements such as a <a class="el" href="pdsc_components_pg.html#element_component">component</a> or <a class="el" href="pdsc_components_pg.html#element_file">file</a>. Other elements can refer to a rule using their attribute <b>condition</b>, which links to the attribute <b>id</b> of a condition. If a condition resolves to <span class="XML-Token">false</span>, then the component or file description is ignored.</p>
<table  class="cmtable" summary="Element: Condition">
<tr>
<th>Parent </th><th colspan="3">Chain  </th></tr>
<tr>
<td><a class="el" href="pdsc_conditions_pg.html#element_conditions">conditions</a> </td><td colspan="3"><a class="el" href="pdsc_conditions_pg.html#element_conditions">/package/conditions</a>  </td></tr>
<tr>
<th>Attributes </th><th>Description </th><th>Type </th><th>Use  </th></tr>
<tr>
<td>id </td><td>Condition identifier which is unique within a <a class="el" href="_c_p__s_w_components.html">Software Pack</a>. The condition identifier is referenced by other elements with the attribute <b>condition</b>. </td><td>xs:string </td><td>required  </td></tr>
<tr>
<th>Child&#160;Elements </th><th>Description </th><th>Type </th><th>Occurrence  </th></tr>
<tr>
<td>description </td><td>Descriptive (comment) text that explains the condition in an human readable way. </td><td>xs:string </td><td>0..1  </td></tr>
<tr class="choice">
<td><a class="el" href="pdsc_conditions_pg.html#element_accept">accept</a><sup>1</sup> </td><td>At least one <a class="el" href="pdsc_conditions_pg.html#element_accept">accept</a> must be true to signal a true for the complete condition (<b>OR-Rule</b>) </td><td>FilterType </td><td>0..*  </td></tr>
<tr class="choice">
<td><a class="el" href="pdsc_conditions_pg.html#element_require">require</a><sup>1</sup> </td><td>All <a class="el" href="pdsc_conditions_pg.html#element_require">require</a> must be true to signal a true for the complete condition (<b>AND-Rule</b>). </td><td>FilterType </td><td>0..*  </td></tr>
<tr class="choice">
<td><a class="el" href="pdsc_conditions_pg.html#element_deny">deny</a><sup>1</sup> </td><td>If one <a class="el" href="pdsc_conditions_pg.html#element_deny">deny</a> is true the complete condition becomes false. This element overrules <a class="el" href="pdsc_conditions_pg.html#element_require">require</a> and <a class="el" href="pdsc_conditions_pg.html#element_accept">accept</a> (<b>AND-NOT-Rule</b>). </td><td>FilterType </td><td>0..*  </td></tr>
</table>
<dl class="section note"><dt>Note</dt><dd><b>1</b>: At least one of these elements must be present in any condition.</dd></dl>
<p>&#160;</p>
<hr/>
<h1><a class="anchor" id="element_accept"></a>
/package/conditions/condition/accept</h1>
<h1><a class="anchor" id="element_require"></a>
/package/conditions/condition/require</h1>
<h1><a class="anchor" id="element_deny"></a>
/package/conditions/condition/deny</h1>
<p>All attributes set in an <a class="el" href="pdsc_conditions_pg.html#element_accept">accept</a>, <a class="el" href="pdsc_conditions_pg.html#element_require">require</a>, or <a class="el" href="pdsc_conditions_pg.html#element_deny">deny</a> must resolve to true for the element to become true. A <a class="el" href="pdsc_conditions_pg.html#element_condition">condition</a> becomes <span class="XML-Token">true</span> when:</p>
<ul>
<li>At least one <a class="el" href="pdsc_conditions_pg.html#element_accept">accept</a> element is true, AND</li>
<li>all <a class="el" href="pdsc_conditions_pg.html#element_require">require</a> elements are true, AND</li>
<li>no <a class="el" href="pdsc_conditions_pg.html#element_deny">deny</a> element is true.</li>
</ul>
<table  class="cmtable" summary="Type: FilterType">
<tr>
<th>Parent </th><th colspan="3">Chain  </th></tr>
<tr>
<td><a class="el" href="pdsc_conditions_pg.html#element_condition">accept</a> </td><td colspan="3"><a class="el" href="pdsc_conditions_pg.html#element_condition">/package/conditions/condition/accept</a>  </td></tr>
<tr>
<td><a class="el" href="pdsc_conditions_pg.html#element_condition">require</a> </td><td colspan="3"><a class="el" href="pdsc_conditions_pg.html#element_condition">/package/conditions/condition/require</a>  </td></tr>
<tr>
<td><a class="el" href="pdsc_conditions_pg.html#element_condition">deny</a> </td><td colspan="3"><a class="el" href="pdsc_conditions_pg.html#element_condition">/package/conditions/condition/deny</a>  </td></tr>
<tr>
<th>Attributes </th><th>Description </th><th>Type </th><th>Use  </th></tr>
<tr>
<td>Dfamily<b>*</b> </td><td>Specifies the device family name (for example: STM32F2 Series). </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>DsubFamily<b>*</b> </td><td>Specifies the device sub-family name (for example: STM32F205 Series). </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>Dvariant<b>*</b> </td><td>Specifies the variant name of a device (for example: Step A). </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>Dvendor </td><td>Specifies the silicon vendor of the device. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DeviceVendorEnum">Device Vendor</a>. </td><td>DeviceVendorEnum </td><td>optional  </td></tr>
<tr>
<td>Dname<b>*</b> </td><td>Specifies the name of the device.  </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>Pname </td><td>Specifies the processor instance in case of multi processor devices. This allows to describe distinct conditions for a specific processor. </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>Dcore </td><td>Specifies a processor core. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DcoreEnum">Device Cores</a>. </td><td>DcoreEnum </td><td>optional  </td></tr>
<tr>
<td>Dfpu </td><td>Specifies whether a Floating Point Unit (FPU) must be present or not. Predefined values can be uses as listed in the table <a class="el" href="pdsc_family_pg.html#DfpuEnum">Device FPU</a>. </td><td>DfpuEnum </td><td>optional  </td></tr>
<tr>
<td>Dmpu </td><td>Specifies whether a Memory Protection Unit (MPU) must be present or not. Predefined values can be uses as listed in the table <a class="el" href="pdsc_family_pg.html#DmpuEnum">Device MPU</a>. </td><td>DmpuEnum </td><td>optional  </td></tr>
<tr>
<td>Dendian </td><td>Specifies the endianess of a device. Use predefined values as listed in the table <a class="el" href="pdsc_family_pg.html#DendianEnum">Endianess</a>. </td><td>DendianEnum </td><td>optional  </td></tr>
<tr>
<td>Cvendor<b>*</b> </td><td>Specifies a component vendor name. </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>Cbundle<b>*</b> </td><td>Specifies a component class bundle name. </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>Cclass<b>*</b> </td><td>Specifies a component class name. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CclassType">Component Classes</a>. </td><td>CclassType </td><td>optional  </td></tr>
<tr>
<td>Cgroup<b>*</b> </td><td>Specifies a software Component Group. Predefined values can be used as listed in the table <a class="el" href="element_taxonomy.html#CgroupType">Component Groups</a>. </td><td>CgroupType </td><td>optional  </td></tr>
<tr>
<td>Csub<b>*</b> </td><td>Specifies a software component subgroup. The type is described in <a class="el" href="pdsc_components_pg.html#CsubType">Component Subgroups</a>. </td><td>CsubType </td><td>optional  </td></tr>
<tr>
<td>Cvariant<b>*</b> </td><td>Specifies a software component variant. </td><td>xs:string </td><td>optional  </td></tr>
<tr>
<td>Cversion </td><td>Specifies a software component version.<ul>
<li><b>require Cversion:</b>condition is true if version of component is equal or higher than requested.</li>
<li><b>deny Cversion:</b> condition is true if version of component is lower than requested.</li>
<li>Version ranges are specified with <em>min_version</em><b>:</b><em>max_version</em>. The condition is true if the version of the component is equal or higher than <em>min_version</em> and lower or equal than <em>max_version</em>. If <em>min_version</em> and <em>max_version</em> are equal the version must match. For more information refer to <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </li>
</ul>
</td><td><a class="el" href="pdsc_package_pg.html#VersionType">VersionType</a> </td><td>optional  </td></tr>
<tr>
<td>Capiversion </td><td>Specifies an API version.<ul>
<li><b>require Capiversion:</b>condition is true if version of API is equal or higher than requested.</li>
<li><b>deny Capiversion:</b> condition is true if version of API is lower than requested.</li>
<li>Version ranges are specified with <em>min_version</em><b>:</b><em>max_version</em>. The condition is true if the version of the API is equal or higher than <em>min_version</em> and lower or equal than <em>max_version</em>. If <em>min_version</em> and <em>max_version</em> are equal the version must match. For more information refer to <a class="el" href="pdsc_package_pg.html#VersionType">Version Type</a>. </li>
</ul>
</td><td><a class="el" href="pdsc_package_pg.html#VersionType">VersionType</a> </td><td>optional  </td></tr>
<tr>
<td>Tcompiler </td><td>Specifies a compiler toolchain (ARMCC, GCC, IAR, Tasking, ...). Use predefined values as listed in table <a class="el" href="pdsc_conditions_pg.html#CompilerEnumType">Compiler Types</a>. </td><td>CompilerEnumType </td><td>optional  </td></tr>
<tr>
<td>condition </td><td>Refers to another condition identified through the attribute <em><b>id</b>.</em>  </td><td>xs:string </td><td>optional  </td></tr>
</table>
<p><b>*)</b> Wild-cards can be used to match names with the following defintions:</p>
<ul>
<li>'*' matches any substring</li>
<li>'?' matches any single character</li>
<li>[abc] matches any character in the set (a,b,c)</li>
</ul>
<p>&#160;</p>
<p><a class="anchor" id="CompilerEnumType"></a><b>Table: Compiler Types</b></p>
<p>The tale list values representing a C/C++ compiler toolchains from a specific tool vendor. The tokens can be used in the elements:</p>
<ul>
<li><a class="el" href="pdsc_conditions_pg.html#element_accept">/package/conditions/condition/accept</a></li>
<li><a class="el" href="pdsc_conditions_pg.html#element_require">/package/conditions/condition/require</a></li>
<li><a class="el" href="pdsc_conditions_pg.html#element_deny">/package/conditions/condition/deny</a></li>
</ul>
<table  class="cmtable" summary="Enumeration: CompilerEnumType">
<tr>
<th>Tcompiler= </th><th>Description  </th></tr>
<tr>
<td class="XML-Token">GCC </td><td>GNU Tools for ARM Embedded Processors. Refer to <a href="https://launchpad.net/gcc-arm-embedded/4.7" target="_blank">ARM GCC</a>.  </td></tr>
<tr>
<td class="XML-Token">G++ </td><td>Code Sourcery GCC compiler for C and C++ (is now Mentor Graphics CodeBench).  </td></tr>
<tr>
<td class="XML-Token">ARMCC </td><td>ARM compiler for C and C++. Refer to <a href="http://infocenter.arm.com/help/topic/com.arm.doc.subset.swdev.coretools/index.html" target="_blank">ARM Compiler from ARM</a>.  </td></tr>
<tr>
<td class="XML-Token">IAR </td><td>IAR compiler for C and C++.  </td></tr>
<tr>
<td class="XML-Token">Tasking </td><td>TASKING compiler for C and C++.  </td></tr>
<tr>
<td class="XML-Token">GHS </td><td>Green Hills Software compiler for C, C++, and EC++.  </td></tr>
</table>
<p>&#160;</p>
<hr/>
 </div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="_pack_format.html">Pack Description (*.PDSC) Format</a></li>
    <li class="footer">Generated on Tue Oct 27 2015 14:35:43 for CMSIS-Pack by ARM Ltd. All rights reserved.
	<!--
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.2 
	-->
	</li>
  </ul>
</div>
</body>
</html>
